【MySQL】データベースの基本操作 - 作成・情報表示・削除・使用選択
MySQLは複数のRDBを管理できます。
ここではリレーショナルデータベースの基本操作について解説します。
検証環境
MySQLのRDB
MySQLは複数のRDB(リレーショナルデータベース)を管理できます。
RDBの作成や情報表示、削除など様々な操作が可能です。
作成(CREATE DATABASE
)
データベースの作成はCREATE DATABASE
文を使います。
基本構文
CREATE DATABASE データベース名;
サンプル
mysql> CREATE DATABASE mydb;
Query OK, 1 row affected (0.01 sec)
一覧表示(SHOW DATABASES
)
データベース一覧の表示はSHOW DATABASES
文を使います。
基本構文
SHOW DATABASES;
サンプル
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
| sys |
+--------------------+
9 rows in set (0.01 sec)
MySQLには4つのデフォルトデータベースが存在します。
information_schema
mysql
performance_schema
sys
これらはMySQLのシステムやデータベースなど様々な情報を保持するデータベースです。
情報表示
データベースの情報や作成SQLクエリを表示できます。
情報(SELECT FROM information_schema
)
information_schema
データベースからデータベースの情報を取得できます。
取得にはSELECT
文を使用しますが、未学習の方は構文を覚えておきましょう。
基本構文
SELECT * FROM information_schema.SCHEMATA where SCHEMA_NAME = 'データベース名';
'データベース名'
から分かるように、データベースは文字列で指定します。
サンプル
mysql> SELECT * FROM information_schema.SCHEMATA where SCHEMA_NAME = 'mydb';
+--------------+-------------+----------------------------+------------------------+----------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
+--------------+-------------+----------------------------+------------------------+----------+
| def | mydb | utf8mb4 | utf8mb4_0900_ai_ci | NULL |
+--------------+-------------+----------------------------+------------------------+----------+
作成SQLクエリ(SHOW CREATE DATABASE
)
データベースの作成SQLクエリを表示できます。
基本構文
SHOW CREATE DATABASE データベース名;
サンプル
mysql> SHOW CREATE DATABASE mydb;
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| mydb | CREATE DATABASE `mydb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
文字セットや照合順序はデータベース作成時に指定しなかった場合、デフォルトの値が設定されています。
使用選択(USE
)
使用するデータベースをUSE
文で選択できます。
クエリは使用選択したデータベースを起点に実行するため、データベース名の記述が不要になります。
基本構文
USE データベース名;
サンプル
information_schemaを使用選択し、データベース名を省略したクエリを実行します。
___ih_hl_start
mysql> USE information_schema;
___ih_hl_end
Database changed
mysql> SELECT * FROM SCHEMATA where SCHEMA_NAME = 'mydb';
+--------------+-------------+----------------------------+------------------------+----------+--------------------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH | DEFAULT_ENCRYPTION |
+--------------+-------------+----------------------------+------------------------+----------+--------------------+
| def | mydb | utf8mb4 | utf8mb4_0900_ai_ci | NULL | NO |
+--------------+-------------+----------------------------+------------------------+----------+--------------------+
1 row in set (0.00 sec)
4行目のmydb
データベースの情報表示クエリでは、information_schema
データベースを選択中のため、省略して実行できました。
また、選択中のデータベースはDATABASE関数で確認できます。
mysql> SELECT DATABASE();
+--------------------+
| DATABASE() |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
削除(DROP DATABASE
)
データベースの削除はDROP DATABASE
文を使います。
基本構文
DROP DATABASE データベース名;
サンプル
mysql> DROP DATABASE mydb;
Query OK, 0 rows affected (0.01 sec)